/*
 * Filename:    ICodeLabelService.java
 * Copyright:   2014 中国平安保险（集团）股份有限公司 版权所有
 * Company:     平安科技养老险及健康险系统开发部
 * Create at:   2014年10月15日
 */
package com.paic.mhis.hcpms.quota.settlement.intergration.dao;

import java.util.List;
import java.util.Map;

import com.paic.mhis.hcpms.quota.indicatorconfig.dto.IndicatorBaseDTO;
import com.paic.mhis.hcpms.quota.settlement.dto.CodeLabelDTO;
import com.paic.mhis.hcpms.quota.settlement.dto.IndicationDeptDTO;
import com.paic.mhis.hcpms.quota.settlement.dto.IndicationDeptDoctor;
import com.paic.mhis.hcpms.quota.settlement.dto.IndicationOrgDepartment;
import com.paic.mhis.hcpms.quota.settlement.dto.MedicalOrgDTO;

public interface ICodeLabelDAO {
	public List<CodeLabelDTO> queryCodeLabelDTOByType(String type);

	/**
	 * 根据级别查询该级别下的所有医疗机构
	 * 
	 * @param level
	 * @return
	 */
	public List<MedicalOrgDTO> queryMedicalOrgDTOByLevel(String level, int start, int end, String areaCode);

	/**
	 * 根据级别查询总共多少条医院纪录
	 * 
	 * @param level
	 * @return
	 */
	public long queryMedicalOrgDTOCount(String level, String areaCode);

	/**
	 * 根据医院编码查询所有科室的信息
	 * 
	 * @param orgCode
	 * @param start
	 * @param end
	 * @return
	 */
	public List<IndicationOrgDepartment> queryIndicationOrgDepartmentByOrgCode(String orgCode, int start, int end);

	/**
	 * 根据医院编码查询该医院下科室总条目
	 * 
	 * @param orgCode
	 * @return
	 */
	public long queryMedicalOrgDepartmentCount(String orgCode);

	/**
	 * 根据科室的编码查询科室下的医生信息
	 * 
	 * @param deptCode
	 * @return
	 */
	public List<IndicationDeptDoctor> queryIndicationDeptDoctorInfo(String deptCode, int start, int end);

	/**
	 * 根据科室编码查询该科室下医生总条目
	 * 
	 * @param deptCode
	 * @return
	 */
	public long queryIndicationDeptDoctorCount(String deptCode);

	/**
	 * 根据orgCode 查询医院信息
	 * 
	 * @param orgCode
	 * @return
	 */
	public MedicalOrgDTO queryMedicalOrgDTOByOrgCode(String orgCode);

	/**
	 * 根据 科室编码 以及医院编码 查询一条记录
	 * @param map
	 * @return
	 */
	public IndicationDeptDTO queryIndicationDepartDTOByDeptCode(Map<String,Object> map);

	/**
	 * 根据指标id,加载指标信息
	 * 
	 * @param kpiId
	 * @return
	 */
	public IndicatorBaseDTO queryIndicatorBaseDTOByKpiId(String kpiId);

}
